Printing devices, such as printers and multi-function peripherals (MFPs) such as the Ricoh Aficio Color 6513 system, may come equipped with the native ability to understand and process commands from a multitude of different printing definition languages. For example, a printing device might comprise a Postscript interpreter, a Portable Document Format (PDF) interpreter, and different interpreters for different versions of Printer Control Language (PCL), such as a PCL5 interpreter and a PCL-XL interpreter. If a printing device comprises a Postscript interpreter, then print data that contains Postscript commands can be understood and processed by the printing device, for example.
Depending on the printing device, there may be some data types or printer definition languages that a printing device is not natively configured to understand. In such cases, a printer driver installed on a computer that sends print data to the printing device usually translates original print data, which is in a language that the printing device does not understand, into corresponding translated print data that is in a language that the printing device understands. For example, a Postscript printer might only come equipped with a Postscript interpreter and no other interpreter. If an application program attempts to send, to the Postscript printer, a print data stream that comprises non-Postscript commands, such as PDF commands, then a Postscript driver installed on the same computer as the application program first translates the PDF commands into corresponding Postscript commands, and then sends the translated print data stream on to the printing device.
FIG. 1 is a block diagram that illustrates how a Postscript driver translates non-Postscript commands into Postscript commands for the benefit of a Postscript printer. In FIG. 1, Postscript printer 102 comes with the native ability to understand and process Postscript commands, but not non-Postscript commands such as those that might occur in a PDF file, for example.
As is shown in FIG. 1, all print data that is sent toward Postscript printer 102 is first received by Postscript driver 104. Postscript driver 104 inspects received print data and determines whether the print data is described in Postscript or in some other non-Postscript printer definition language. If Postscript driver 104 determines that the print data is described in Postscript, then Postscript driver 104 does not need to translate the print data. In this case, Postscript driver 104 sends the print data to Postscript printer 102 without performing any translation relative to the print data. However, if Postscript driver 104 determines that the print data is describer in a printer definition language other than Postscript (e.g., PDF), then Postscript driver 104 “renders” the print data into Postscript and then passes the rendered Postscript data along to Postscript printer 104.
It is a computationally expensive operation to translate print data from one printer definition language to another, and therefore should be avoided whenever possible. Such translation takes a significant amount of time. Additionally, the translation might also result in a loss of information. Unfortunately, unnecessary translation and rendering often occurs within existing systems. As is discussed above, many printing devices are natively equipped with the ability to understand and process multiple different printer definition languages. Despite these printing devices' diverse native capabilities, existing systems pass all print data through a printer driver for a single printer definition language. If the print data is in a language other than that which the printer driver produces, then the printer driver renders the print data even though the printing device could have understood and processed the print data in its original form.
For example, a printing device might comprise both a PDF interpreter and a Postscript interpreter. Such a printing device would be able to understand both PDF print data streams and Postscript print data streams. Nevertheless, if the printer driver installed on a computer that sends print data streams toward the printing device is a Postscript driver, then the printer driver will render all PDF print data streams into Postscript print data streams before passing the print data streams on to the printing device.
This is clearly a waste of the computer's processing resources. Based on the foregoing, there is a need for a way of avoiding the unnecessary translation and rendering of print data streams when those print data streams could be understood and processed by a printing device without any translation into a different printer definition language.